export interface RetVO<T> {
  code: number;
  msg: string;
  data: T;
}

export interface PageRetVO<T> {
  code: number;
  msg: string;
  data: PageVO<T>;
}

export interface PageDTO {
  pageNum: number;
  pageSize: number;
  total?: number;
}

interface PageVO<T> {
  current: number;
  pages: number;
  total: number;
  records: T;
}

export interface IdParamDTO {
  id: string;
}

export interface TotalBaseInfo {
  menuTree: MenuTree[];
  selfInfoDTO: SelfInfoDTO;
}

export interface MenuTree {
  children: MenuTree[];
  gmtCreate: string;
  gmtModified: string;
  icon: string;
  id: string;
  name: string;
  orderNumber: number;
  path: string;
  pid: string;
}

export interface SelfInfoDTO {
  birthday?: string;
  email?: string;
  gmtCreate?: string;
  gmtModified?: string;
  id?: string;
  logoId?: string;
  logoSrc?: string;
  nickname?: string;
  password?: string;
  phone?: string;
  realName?: string;
  roleSigns?: string[];
  sex?: string;
  sign?: string;
}

export enum ErrorCode {
  TOKEN_OUT_TEMPORARY = 11016,
  TOKEN_OUT = 11013
}

export interface WebsiteInfo {
  sysName: string;
  sysDesc: string;
  notice: string;
  runningTime: string;
}

export interface WebsiteCount {
  articleCount: number;
  commentCount: number;
  talkCount: number;
  tagCount: number;
}
